package br.gov.sedurb.ws.client;

import br.gov.se.seplag.RequestFixo;
import br.gov.se.seplag.unidadeatendimento.ErroInfoMessage;
import br.gov.se.seplag.unidadeatendimento.ParametroPesquisarUnidadeAtendimento;
import br.gov.se.seplag.unidadeatendimento.ResultadoPesquisarUnidadeAtendimento;
import br.gov.se.seplag.unidadeatendimento.UnidadeAtendimento;
import br.gov.se.seplag.unidadeatendimento.UnidadeAtendimento_Service;

import br.gov.sedurb.util.JSFUtils;

import java.util.ArrayList;
import java.util.List;

import javax.xml.ws.WebServiceRef;

// !THE CHANGES MADE TO THIS FILE WILL BE DESTROYED IF REGENERATED!
// This source file is generated by Oracle tools
// Contents may be subject to change
// For reporting problems, use the following
// Version = Oracle WebServices (11.1.1.0.0, build 130224.1947.04102)

public class UnidadeAtendimentoSOAPClient extends WSClient<UnidadeAtendimento> {
    @WebServiceRef
    private UnidadeAtendimento_Service unidadeAtendimento_Service;
    private static UnidadeAtendimentoSOAPClient obj;

    private UnidadeAtendimentoSOAPClient() {
        super();
    }

    public static UnidadeAtendimentoSOAPClient getInstance() {
        if (obj == null) {
            obj = new UnidadeAtendimentoSOAPClient();
        }
        
        return obj;
    }

    public List<br.gov.se.seplag.ebo.v1.UnidadeAtendimento> pesquisarUnidadeAtendimento(String nomeServico) {

        ParametroPesquisarUnidadeAtendimento parameters =
            new ParametroPesquisarUnidadeAtendimento();
        parameters.setPaginacaoRequest(RequestFixo.paginacao());
        parameters.setNomeServico(nomeServico);
        
        List<br.gov.se.seplag.ebo.v1.UnidadeAtendimento> listaUnidade = new ArrayList<br.gov.se.seplag.ebo.v1.UnidadeAtendimento>();
        
        try {
            ResultadoPesquisarUnidadeAtendimento lista =
                getPort().pesquisarUnidadeAtendimento(parameters, RequestFixo.cabecalho());

            listaUnidade = lista.getListaUnidadeAtendimento().getUnidadeAtendimento();

        } catch (ErroInfoMessage e) {
            JSFUtils.addFacesErrorMessage("Erro ao tentar utilizar o serviço " + this.getClass().getSimpleName() + ":" + e.getMessage());
            } catch (Exception e) {
                JSFUtils.addFacesErrorMessage(erroGenerico(e));
            }
        return listaUnidade;
    }

    public UnidadeAtendimento criarPortType() {

        unidadeAtendimento_Service = new UnidadeAtendimento_Service();
        UnidadeAtendimento port =
            unidadeAtendimento_Service.getUnidadeAtendimentoSOAP();
        
        return port;
    }
}
